Skip to main content

v0.6.0

2023-07-31

DefraDB v0.6 is a major pre-production release. Until the stable version 1.0 is reached, the SemVer minor patch number will denote notable releases, which will give the project freedom to experiment and explore potentially breaking changes.

There are several new and powerful features, important bug fixes, and notable refactors in this release. Some highlight features include: The initial release of our LensVM based schema migration engine powered by WebAssembly (#1650), newly embedded DefraDB Playround which includes a bundled GraphQL client and schema manager, and last but not least a relation field (type_id) alias to improve the developer experience (#1609).

To get a full outline of the changes, we invite you to review the official changelog below. This release does include a Breaking Change to existing v0.5.x databases. If you need help migrating an existing deployment, reach out at [email protected] or join our Discord at https://discord.gg/w7jYQVJ/.

Features

  • Add _not operator (#1631)
  • Schema list API (#1625)
  • Add simple data import and export (#1630)
  • Playground (#1575)
  • Add schema migration get and set cmds to CLI (#1650)
  • Allow relation alias on create and update (#1609)
  • Make fetcher calculate docFetches and fieldFetches (#1713)
  • Add lens migration engine to defra (#1564)
  • Add _keys attribute to selectNode simple explain (#1546)
  • CLI commands for secondary indexes (#1595)
  • Add alias to groupBy related object (#1579)
  • Non-unique secondary index (no querying) (#1450)
  • Add ability to explain-debug all nodes (#1563)
  • Include dockey in doc exists err (#1558)

Fixes

  • Better wait in CLI integration test (#1415)
  • Return error when relation is not defined on both types (#1647)
  • Change core.DocumentMapping to pointer (#1528)
  • Fix invalid (badger) datastore state (#1685)
  • Discard index and subscription implicit transactions (#1715)
  • Remove duplicated peers in peerstore prefix (#1678)
  • Return errors from typeJoinOne (#1716)
  • Document change detector breaking change (#1531)
  • Standardise schema migration CLI errors (#1682)
  • Introspection OrderArg returns null inputFields (#1633)
  • Avoid duplicated requestable fields (#1621)
  • Normalize int field kind (#1619)
  • Change the WriteSyncer to use lock when piping (#1608)
  • Filter splitting and rendering for related types (#1541)

Documentation

  • Improve CLI command documentation (#1505)

Refactoring

  • Schema list output to include schemaVersionID (#1706)
  • Reuse lens wasm modules (#1641)
  • Remove redundant txn param from fetcher start (#1635)
  • Remove first CRDT byte from field encoded values (#1622)
  • Merge node into net and improve coverage (#1593)
  • Fetcher filter and field optimization (#1500)

Testing

  • Rework transaction test framework capabilities (#1603)
  • Expand backup integration tests (#1699)
  • Disable test (#1675)
  • Add tests for 1-1 group by id (#1655)
  • Remove CLI tests from make test (#1643)
  • Bundle test state into single var (#1645)
  • Convert explain group tests to new explain setup (#1537)
  • Add tests for foo_id field name clashes (#1521)
  • Resume wait correctly following test node restart (#1515)
  • Require no errors when none expected (#1509)

Continuous integration

  • Add workflows to push, pull, and validate docker images (#1676)
  • Build mocks using make (#1612)
  • Fix terraform plan and merge AMI build + deploy workflow (#1514)
  • Reconfigure CodeCov action to ensure stability (#1414)

Chore

  • Bump to GoLang v1.20 (#1689)
  • Update to ipfs boxo 0.10.0 (#1573)